#!/usr/bin/python

##################################
#                                #
#  David Lladro - S2 Grupo       #
#     Noviembre 2011             #
#  Mail: david.lladro@gmail.com  #
#  Twitter: @davidlladro         #
#                                #
##################################

# paquetes necesarios 
import urllib2, subprocess,time

# Host y archivo 
url_base = "https://market.android.com/details?id=apps_topselling_"
url_base2 = "https://market.android.com/details?id="
num_juegos = 0
lista_perm = {}
tipo_app = ['free','paid']
categoria_juegos = ['ARCADE','RACING','CASUAL','SPORTS_GAMES','GAME_WALLPAPER','CARDS','BRAIN','GAME_WIDGETS']
categoria = ['ARCADE','RACING','CASUAL','SPORTS_GAMES','GAME_WALLPAPER','CARDS','BRAIN','GAME_WIDGETS','SHOPPING','COMMUNICATION','COMICS','SPORTS','EDUCATION','ENTERTAINMENT','LIFESTYLE','FINANCE','APP_WALLPAPER','PHOTOGRAPHY','TOOLS','LIBRARIES_AND_DEMO','BOOKS_AND_REFERENCE','MEDICAL','MEDIA_AND_VIDEO','MUSIC_AND_AUDIO','BUSINESS','NEWS_AND_MAGAZINES','PERSONALIZATION','PRODUCTIVITY','HEALTH_AND_FITNESS','SOCIAL','WEATHER','TRANSPORTATION','TRAVEL_AND_LOCAL','APP_WIDGETS']
salida = open("permisos_GLOBAL.xml", "w")
salida.write("<Juegos>\n")
for tipo in tipo_app:
	for cat in categoria:
		for i in range(0,504,24):
			url = url_base + str(tipo) + "&cat=" +  str(cat)+ "&start=" + str(i) + "&num=24"
			try:
				f = urllib2.urlopen(url)
				web = f.read()
				f.close()
				download = str(web).split("<a href=\"/details?id=")
				for j in download:
					arg = j.split("\"")[0]
					if "apps_topselling_" in arg:
						url2 = url_base2 + arg
						f = urllib2.urlopen(url2)
						web2 = f.read()
						f.close()
						titulo = web2.split("doc-banner-title\">")[1]
						titulo = titulo.split("\"")[0]
						titulo = titulo.split ("<")[0]
						num_juegos = float(num_juegos) + 1
						print titulo + " " + str(num_juegos)
						salida.write("\t<Juego>\n")
						salida.write("\t\t<Titulo>")
						salida.write(titulo)
						salida.write("</Titulo>\n")
						salida.write("\t\t<Permisos>\n")
						permisos = str(web2).split("\"doc-permission-description\"")
						for perm in permisos:
							param = perm.split("\"")[0]
							if "div" in param:
								salida.write("\t\t")
								permiso = param[1:].split("<")[0]
								salida.write(permiso)
								if not lista_perm.has_key(permiso):
									lista_perm[permiso] = 1
								else:
									lista_perm[permiso] = lista_perm[permiso] + 1
								salida.write("\n")
						salida.write("\t\t</Permisos>\n")
						salida.write("\t</Juego>\n")
			except:
				print "No hay mas url"
			

	
salida.write("</Juegos>\n\n")
salida.close()

salida = open("estadisticas_GLOBAL.txt", "w")
salida.write("Numero total de juegos: ")
salida.write(str(num_juegos))
salida.write("\n\n")
salida.write("Numero de aplicaciones que usa cada permiso:\n")

l = lista_perm.items()
l.sort(key=lambda x: x[1])
l.reverse()
for lista_externa in l:
	stat= str((lista_externa[1]*100)/num_juegos) + "%\t\t" + str(lista_externa[1]) + "\t\t\t" + str(lista_externa[0]) + "\n"
	salida.write(stat)

salida.close()
